import type { InvoiceCheckStatusCnEnum, InvoiceTypeCnEnum, InvoiceUploadStatusCnEnum } from '@/const/enum'
import type { EnumDto } from '../types'
import type { UploadFileDto } from '@/components/file/Upload'

export interface CompanyDto {
  companyName: string
  auditStatus: number
  id: number
  label?: string
  value?: number
}

export interface ChannelDto {
  id: number
  name: string
  auditStatus: number
  contacts: string
  area: string
  phone: string
  isOpenPc: number
  dataScope: number
  type: number
  createTime: string
  createUserId: number
  updateTime: null
  updateUserId: null
  params: ParamsDto
  saasReceiptAccountInfoList: null
}

export interface ParamsDto {
}


export interface InvoiceReqDto {
  status: InvoiceUploadStatusCnEnum
  salesId: string
  applicationMonth: string
  companyName: string
  type: InvoiceTypeCnEnum
  receiptIds: string
  openDay: string
  checkStatus: InvoiceCheckStatusCnEnum
}
export interface InvoiceDto {
  id: number
  companyId: number
  companyName: string
  invoiceName: string
  month: string
  applyTime: string
  type: number
  amount: number
  status: number
  invoiceUrl: string
  isDelete: number
  createTime: string
  updateTime: string
  uploadTime: string
  checkStatus: number
  checkTime: string
  params: Params
  checkStatusList: null
  downloadCount: null
  creditCode: string
  bankName: null
  receiptId: null
  receiptIds: null
  companyAddress: string
  phone: string
  bankNo: string
  openBank: string
  salesName: null
  salesId: null
  applicationMonth: null
  rechargeAmount: null
  openDay: null
  ids: null
  companyNames: null
  companyIds: null
}

interface Params {
}

export interface BatchInvoiceDto {
  id: number
  companyName: string
  month: string
  invoiceName: string
  uploadTime: string
  invoiceNo: string
  isSync: number
  type: number
  invoiceMonth: string
  invoiceUrl: string
  createTime: string
  updateTime: string
  createUserId: number
  isDelete: number
  openAmount: number
  syncAmount: number
  params: Params
}

export interface SyncInvoiceReqDto {
  uploadId: number
  invoiceUrl: string
  invoiceList: SyncInvoiceItemDto[]
}

export interface SyncInvoiceItemDto {
  id: number
  month: string
  status: number
}